#include "Building.h"

/**
 * Configuration for the Building application. 
 * 
 * @author Mina Jung
 * @date   Oct 31 2010
 */

configuration BuildingAppC {}
implementation {
  components MainC, BuildingC as App, LedsC, new DemoSensorC();

  components TinySchedulerC;

  components ActiveMessageC;

  components new AMSenderC(AM_RADIO_MULTI_MSG);
  components new AMReceiverC(AM_RADIO_MULTI_MSG);

  components new TimerMilliC() as Timer0;
  components new TimerMilliC() as Timer1;
  components new TimerMilliC() as Timer2;

  
  App.Boot -> MainC.Boot;
  App.Interrupt ->MainC.Interrupt;
  
  App.Receive -> AMReceiverC;
  App.AMSend -> AMSenderC;

  App.RadioControl -> ActiveMessageC;

  App.Leds -> LedsC;

  App.Timer0 -> Timer0;
  App.Timer1 -> Timer1;
  App.Timer2 -> Timer2;



  App.Packet -> AMSenderC;

  App.Read -> DemoSensorC;

  App.CO2Task->TinySchedulerC.TaskUrgent[unique("TinySchedulerC.TaskUrgent")];
  App.TempTask->TinySchedulerC.TaskUrgent[unique("TinySchedulerC.TaskUrgent")];
  App.LightTask->TinySchedulerC.TaskUrgent[unique("TinySchedulerC.TaskUrgent")];
  App.MotionTask->TinySchedulerC.TaskUrgent[unique("TinySchedulerC.TaskUrgent")];
  App.CameraTask->TinySchedulerC.TaskUrgent[unique("TinySchedulerC.TaskUrgent")];
}
